<html>
<head></head>
<body><a name="ZH-CN_TOPIC_0000002194009468"></a><a name="ZH-CN_TOPIC_0000002194009468"></a>
<h1>分层架构设计</h1>
<div><p>HarmonyOS
    应用的分层架构设计基于一套代码工程，支持华为手机、PC/2in1等1+8全场景设备，实现了“一次开发，多端部署”的开发理念。</p>
    <p>HarmonyOS应用分层架构包括产品定制层、基础特性层和公共能力层，构建了清晰、高效、可扩展的设计架构。</p>
    <p>本文将从<a href="#section2075132511213">逻辑模型</a>、<a href="#section1191910571522">开发模型</a>和<a
            href="#section1117721715317">部署模型</a>分别介绍应用分层架构设计规则。</p>
    <div class="section" id="section2075132511213"><a name="section2075132511213"></a><a
            name="section2075132511213"></a><h4>逻辑模型</h4></div>
    <div class="fignone"><span class="figcap"><b>图1 </b>分层架构逻辑模型</span><br><span><img
            height="159.60000000000002" originheight="558" originwidth="1824"
            src="https://communityfile-drcn.op.dbankcloud.cn/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20250718170959.28065319184815487828342507341392:50001231000000:2800:24DE0E62F4930C2EF177D89EDCFF0E30D3BBF3BE3CB284AF124B254E181E7E10.png"
            title="点击放大" width="523.6875"></span></div>
    <ul>
        <li><strong>产品定制层</strong>
            <p>
                产品定制层专注于满足不同设备或使用场景的个性化需求，包括UI设计、资源和配置，以及特定场景的交互逻辑和功能特性。</p>
            <p>产品定制层的功能模块独立运作，依赖基础特性层和公共能力层实现具体功能。</p>
            <p>
                产品定制层作为应用的入口，是用户直接互动的界面。为了满足特定需求，产品定制层可以灵活调整和扩展，以适应各种使用场景。</p>
        </li>
        <li><strong>基础特性层</strong>
            <p>
                基础特性层位于公共能力层之上，用于存放相对独立的功能UI和业务逻辑实现。每个功能模块都具备高内聚、低耦合、可定制的特点，支持产品的灵活部署。</p>
            <p>
                基础特性层为产品定制层提供稳健且丰富的基础功能支持，包括UI组件和基础服务。公共能力层为其提供通用功能和服务。</p>
            <p>
                为了增强系统的可扩展性和维护性，基础特性层对功能进行了模块化处理。例如，应用底部导航栏的每个选项都是一个独立的业务模块。</p>
        </li>
        <li><strong>公共能力层</strong>
            <p>公共能力层存放公共基础能力，包括公共UI组件、数据管理、外部交互和工具库等共享功能。应用可调用这些公共能力。</p>
            <p>公共能力层提供稳定可靠的功能支持，确保应用的稳定性和可维护性。</p>
            <p>公共能力层包含以下组成部分：</p>
            <ul>
                <li>
                    公共UI组件：公共UI组件设计为通用且高度可复用，确保在不同应用程序模块间保持一致的用户体验。这些组件提供标准化、友好的界面，帮助开发者快速实现常见的用户交互需求，如提示、警告和加载状态显示，从而提高开发效率和用户满意度。
                </li>
                <li>
                    数据管理：负责应用程序中数据的存储和访问，包括应用数据、系统数据等，提供了统一的数据管理接口，简化数据的读写操作。通过集中式的数据管理方式不仅使得数据的维护更为简单，而且能够保证数据的一致性和安全性。
                </li>
                <li>
                    外部交互：外部交互负责应用程序与外部系统的交互，包括网络请求、文件I/O、设备I/O等，提供统一的外部接口，简化应用程序与外部系统的交互。开发者可以方便地实现网络通信、数据存储和硬件接入，从而加速开发流程并保证程序的稳定性和性能。
                </li>
                <li>
                    工具库：工具库提供一系列常用工具函数和类，如字符串处理、日期时间处理、加密解密、数据压缩解压等，帮助开发者提高效率和代码质量。
                </li>
            </ul>
        </li>
    </ul>
    <div class="section" id="section1191910571522"><a name="section1191910571522"></a><a
            name="section1191910571522"></a><h4>开发模型</h4></div>
    <div class="fignone"><span class="figcap"><b>图2 </b>分层架构开发模型</span><br><span><img height="449.299935"
                                                                                               originheight="1321"
                                                                                               originwidth="2220"
                                                                                               src="https://communityfile-drcn.op.dbankcloud.cn/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20250718170959.08348565948228223872002971123629:50001231000000:2800:91A7CEB7D110D757568A760131159CDB118BA9D85FF9EBC214F847787D59215B.png"
                                                                                               title="点击放大"
                                                                                               width="755.1075000000001"></span>
    </div>
    <ul>
        <li><strong>产品定制层</strong>
            <p>产品定制层的各个子目录会被编译成一个<a
                    href="https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/hap-package" target="_blank">Entry类型的HAP</a>，作为应用的主入口。该层面向多种设备，集成相应功能和特性。产品定制层划分为多个功能模块，每个模块针对特定设备或使用场景设计，并根据产品需求进行功能和交互的定制开发。
            </p>
            <div class="note"><img originheight="38" originwidth="102"
                                   src="https://communityfile-drcn.op.dbankcloud.cn/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20250718170959.65034445854869424878192658675328:50001231000000:2800:C50925DE25874A36F4515BF301572B3231CF3A4FFE497299D4930B87415D94E3.png"><span
                    class="notetitle"> </span>
                <div class="notebody">
                    <ul>
                        <li>在产品定制层，开发者可以从不同设备对应的应用UX设计和功能两个维度，结合具体的业务场景，选择一次编译生成<a
                                href="https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-overview#部署模型"
                                target="_blank">相同或者不同的HAP（或其组合）</a>。
                        </li>
                        <li>通过使用<a
                                href="https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-customized-multi-targets-and-products-guides"
                                target="_blank">定制多目标构建产物</a>的定制功能，可以将应用所对应的HAP编译成各自的.app文件，用于上架到应用市场。
                        </li>
                    </ul>
                </div>
            </div>
        </li>
        <li><strong>基础特性层</strong>
            <p>在基础特性层中，功能模块根据部署需求被分为两类。对于需要通过Ability承载的功能，可以设计为<a
                    href="https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/hap-package" target="_blank">Feature类型的HAP</a>，而对于不需要通过Ability承载的功能，根据是否需要实现按需加载，可以选择设计为<a
                    href="https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/har-package"
                    target="_blank">HAR</a>模块或者<a
                    href="https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/in-app-hsp"
                    target="_blank">HSP</a>模块，编译后对应HAR包或者HSP包。</p></li>
        <li><strong>公共能力层</strong>
            <p>
                公共能力层的各子目录将编译成HAR包，仅产品定制层和基础特性层可依赖，不允许反向依赖。该层提取模块化公共基础能力，为上层提供标准接口和协议，提高复用率和开发效率。</p>
        </li>
    </ul>
    <div class="section" id="section1117721715317"><a name="section1117721715317"></a><a
            name="section1117721715317"></a><h4>部署模型</h4></div>
    <div class="fignone"><span class="figcap"><b>图3 </b>分层架构部署模型（不同设备的定制）</span><br><span><img
            height="131.27898000000002" originheight="223" originwidth="1306"
            src="https://communityfile-drcn.op.dbankcloud.cn/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20250718170959.65867625824225834422455517851586:50001231000000:2800:5658D3398B22720CB826BD54C3C8213A3EB20D1BD0D692E8343B1F52D205EE94.png"
            title="点击放大" width="769.0725"></span></div>
    <p>
        应用程序（.app文件）在流水线或应用市场上被解包为N个Entry类型的HAP和N个Feature类型的HAP，根据设备类型和使用场景部署到不同设备，实现多端统一用户体验。</p>
    <div class="note"><img originheight="38" originwidth="102"
                           src="https://communityfile-drcn.op.dbankcloud.cn/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20250718170959.54763607192309316641433664496369:50001231000000:2800:006677D5A5F341D49662E0F0D2F1D5454A4FFC5C4ABA8450D201F62AB93360AD.png"><span
            class="notetitle"> </span>
        <div class="notebody"><p>
            当Entry类型的HAP和Feature类型的HAP被分发并部署到相应设备时，它们所依赖的HSP也会一同被分发并部署到相应设备上。</p>
        </div>
    </div>
    <p>
        在部署模型中，每个Entry类型的HAP代表了应用的入口点，而Feature类型的HAP则包含了应用的特定功能模块。允许应用能够以模块化的方式适配和部署，从而满足不同设备和场景的需求。</p>
    <p>
        部署模型优化了应用的组织结构，确保了应用在各种设备和场景中的一致性。通过根据设备类型和使用场景区分和部署不同的HAP，用户在任何设备或场景中都能获得统一且高质量的体验。</p>
</div>
<div></div>
</body>
</html>